package com.leetcode.www;

import java.util.Stack;

/**
 * Creared with IntelliJ IDEA.
 * Description:给定 s 和 t 两个字符串，当它们分别被输入到空白的文本编辑器后，请你判断二者是否相等。# 代表退格字符。
 *
 * 如果相等，返回 true ；否则，返回 false 。
 *
 * 注意：如果对空文本输入退格字符，文本继续为空。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/backspace-string-compare
 *
 * User:yxd
 * Date:2022-01-15
 * Time:20:38
 */
public class Normal844 {
    public static void main(String[] args) {
        String s = "ab#c", t = "ad#c";
        System.out.println(backspaceCompare(s, t));
    }
    public static boolean backspaceCompare(String s, String t) {
        Stack<Character> stack1 = new Stack<>();//放第一个字符串
        Stack<Character> stack2 = new Stack<>();//放第二个字符串
        for(int i = 0;i < s.length();i ++){
            char ch = s.charAt(i);
            if(ch != '#'){
                stack1.push(ch);//不是#就放入栈
            }else{
                if(!stack1.empty()){
                    stack1.pop();//不为空就消除
                }

            }
        }
        for(int i = 0;i < t.length();i ++){//和上面同理
            char ch = t.charAt(i);
            if(ch != '#'){
                stack2.push(ch);
            }else{
                if(!stack2.empty()){
                    stack2.pop();
                }
            }
        }
        String str1 = null;//放第一个字符串的结果
        while(!stack1.empty()){
            str1 += stack1.pop();
        }
        String str2 = null;//放第二个字符串的结果
        while(!stack2.empty()){
            str2 += stack2.pop();
        }
        if(str1 == null && str2 == null)return true;
        if(str1 != null && str2 != null && str1.equals(str2)){
            return true;
        }else{
            return false;
        }
    }
}
